package com.aos.dao;

import com.aos.dto.ApplicationDto;
import com.aos.entity.Application;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName ApplicationDao
 * @Description:应用
 * @Author wumingwang
 * @Date 2018/9/5 17:02
 * @Version 1.0
 */
public interface ApplicationDao {

    /**
     * 应用分页查询
     * @param map
     * @return
     */
    List<ApplicationDto> queryByPage(Map<String,Object> map);

    /**
     * 新增应用
     * @param application
     */
    void insert(Application application);

    /**
     * 根据ID删除数据
     * @param id
     */
    void delete(Long id);

    /**
     *根据ID更新非空字段
     * @param application
     */
    void updateNotNull(Application application);

    /**
     * 查询重复应用code
     * @param application
     * @return
     */
    Application queryForCheckByCode(Application application);

    /**
     * 查询重复应用名称
     * @param application
     * @return
     */
    Application queryForCheckByName(Application application);

    /**
     * 根据ID查询应用详情
     * @param id
     * @return
     */
    ApplicationDto queryDetailsById(Long id);

    /**
     * 根据ID查询app
     * @param id
     * @return
     */
    Application queryById(Long id);

    /**
     * 根据ID更新应用
     * @param oldapp
     */
    void update(Application oldapp);

    /**
     * 查询所有应用
     * @return
     */
    List<ApplicationDto> queryAll();

    /**
     * 根据code查询app
     * @param appCode
     * @return
     */
    Application queryByCode(@Param("appCode") String appCode);
}
